package com.sky.service;

import com.sky.dto.*;
import com.sky.result.PageResult;
import com.sky.vo.OrderPaymentVO;
import com.sky.vo.OrderStatisticsVO;
import com.sky.vo.OrderSubmitVO;
import com.sky.vo.OrderVO;

public interface Orderservice {
	OrderVO getOrder(Long id);
	
	OrderSubmitVO submitOrder(OrdersSubmitDTO ordersSubmitDTO);
	
	/**
	 * 订单支付
	 *
	 * @param ordersPaymentDTO
	 * @return
	 */
	OrderPaymentVO payment(OrdersPaymentDTO ordersPaymentDTO) throws Exception;
	
	/**
	 * 支付成功，修改订单状态
	 *
	 * @param orderNumber
	 */
	void paySuccess(String orderNumber);
	
	PageResult getOrderList(OrdersPageQueryDTO ordersPageQueryDTO);
	
	void againOrder(Long id);
	
	void getRemindOrder(Long id);
	
	void cancelOrder(Long id) throws Exception;
	
	void cancelOrders(OrdersCancelDTO ordersCancelDTO) throws Exception;
	
	OrderStatisticsVO getOrderStatistics();
	
	void completeOrder(Long id);
	
	void rejectionOrder(OrdersRejectionDTO ordersRejectionDTO) throws Exception;
	
	void confirmOrder(OrdersConfirmDTO ordersConfirmDTO);
	
	void deliveryOrder(Long id);
	
	PageResult conditionSearchOrder(OrdersPageQueryDTO ordersPageQueryDTO);
}
